#!/usr/bin/env python
# coding=utf-8

import unittest
import time

from utility import base

"""
    1,热启动APP进入中间tab点击顶部我的课程
    2，进入我的课程任务页面 检查右上角是否有课程目录按钮
    3，点击用户的生词练习进行答题
    4，点击答案进入结果页 验证是否进入结果页
    5，依次返回回到布克阅读首页
    ps：开始之前查看log文件中的登录号码是否有图书刚好到第三关
"""

class GradeReadingTests(base.BaseTests):
    def test_goto_grade_reading(self):
        time.sleep(2)
        self.tap_tab_index(2)

        time.sleep(1)
        #查看是否有我的课程，有-点击，没有-报错退出
        my_less_tab = self.driver.find_element_by_xpath(u'//XCUIElementTypeButton[@name="我的课程"]')
        self.assertIsNotNone(my_less_tab, u'顶部应该存在一个[我的课程]按钮')
        my_less_tab.click()

        time.sleep(1)

        booker_cell = self.driver.find_element_by_xpath(u'//*[@name="布克阅读"]/..')
        if booker_cell:
            booker_cell.click()

        #已付费在有效期用户点击进入课程后答题并提交
    def test_goto_grade_reading1(self):
        time.sleep(2)
        entry_class = self.driver.find_element_by_xpath(u'//XCUIElementTypeButton[@name="进入课程"]')
        self.assertIsNotNone(entry_class, u'应该存在一个[进入课程]按钮')
        entry_class.click()
        time.sleep(2)

        #判断是否进入任务列表页面
        course_list = self.driver.find_element_by_xpath(u'//XCUIElementTypeButton[@name="课程目录"]/..')
        if course_list:
            print ('找到课程目录按钮，进入正确页面')
            # self.driver.tap_point(168, 481)
            tollgate3 = self.driver.find_element_by_xpath(u'//XCUIElementTypeStaticText[@name="生词练习"]/..')
            self.assertIsNotNone(tollgate3, u'判断是否有生词练习标题')
            tollgate3.click()

            time.sleep(2)
            #点击选项C
            self.driver.tap([(202, 365)], 100)
            time.sleep(2)
            # 点击选项C
            self.driver.tap([(202, 365)], 100)
            time.sleep(2)
            # 点击选项C
            self.driver.tap([(202, 365)], 100)
            time.sleep(2)
            # 点击选项C
            self.driver.tap([(205, 380)], 100)
            time.sleep(2)
            # 点击选项C
            self.driver.tap([(205, 380)], 100)
            time.sleep(2)
            # 点击选项C
            self.driver.tap([(205, 380)], 100)
            time.sleep(2)
            # 点击选项C
            self.driver.tap([(205, 380)], 100)
            time.sleep(2)
            # 点击选项C
            self.driver.tap([(205, 380)], 100)
            time.sleep(0.5)


            # #进入答题页面 等待页面超时自动提交
            # time.sleep(185)
            #进入结果页 点击返回按钮 回到任务列表
            self.driver.save_screenshot("/Users/fisher/workspace/codes/QA/testimg/resultpage.png")
            result_title = self.driver.find_element_by_xpath(u'//XCUIElementTypeStaticText[@name="生词练习"]')
            self.assertIsNotNone(result_title, u'判断事都有生词练习标题')
            result_go_back = self.driver.find_element_by_xpath(u'//XCUIElementTypeButton[@name="graded reading white back"]')
            time.sleep(0.5)
            #点击返回按钮
            result_go_back.click()
            time.sleep(0.5)
            #断言是否回到任务页
            if course_list:
                print ('找到课程目录按钮，进入正确页面')
                task_go_back = self.driver.find_element_by_xpath(u'//XCUIElementTypeButton[@name="graded reading white back"]')
                task_go_back.click()
            # 断言是否回到主页面
            if entry_class:
                print ('找到进入课程按钮，回到布克阅读主页面')
            #断言是否回到学堂tab
            time.sleep(2)
            if my_less_tab:
                print ('找到我的课程，进入学堂页面')
                self.driver.tap([(30, 42)], 100)
        else:
            self.driver.save_screenshot("/Users/fisher/workspace/codes/QA/testimg/answerfail.png")




if __name__ == '__main__':
    test_suite = unittest.TestLoader().loadTestsFromTestCase(GradeReadingTests)
    unittest.TextTestRunner().run(test_suite)